問題タブ [csproj]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - 正規表現を使用して、.csproj ファイルに埋め込まれた xcopy ステートメントを分割するにはどうすればよいですか?
私は大量の (~2000) .csproj ファイルを扱っています。この開発スタッフには、ビルド プロセス中に物事を移動するために、ビルド後のイベントに xcopy を埋め込む歴史的な前例があります。ビルドの知識を 1 か所にまとめるために、自動ビルド プロセスでの宣言型ビルド アクションを優先して、これらの xcopy 呼び出しを根絶することに取り組んでいます。
そのことを念頭に置いて、xcopy に提供されるパス引数を切り取るために使用できる正規表現を考え出そうとしています。ステートメントにはいくつかの種類があります。
具体的には:
- スイッチの予測不可能な配置
- 宛先パス引数が常に指定されているとは限りません
- パス引数が引用符で囲まれることがある
私は正規表現のウィザードではありませんが、これは私がこれまでに得たものです (括弧の過度の使用は、powershell で一致を保存するためです:
(.*x?copy.* '"?)([^ /'"]+)('"/.* '"?)([^ /'"]+)('"?.*)
([^ /'"]+)
セクションは、引用符、スペース、またはスラッシュを含まない文字列として定義されている、パス引数にするつもりの部分ですが、2 つの正規表現を適用する必要があると感じています (1 つはスペースで引用符で囲まれたパス用) 。および引用符なしのパス用の 1 つ)
残念ながら、この正規表現を実行すると、最初と 2 番目のパス引数の両方に同じ一致が得られるようです。最もイライラします。
これを修正するにはどうすればよいですか?
visual-studio - VS2010 プロジェクト -- 未解決の参照 (HintPath プロパティが見つからない)
ビルド コンピューターを新しいものに変更すると同時に、Visual Studio 2010 に変更する作業を行っています。約 500 の異なる小さなコンポーネントがあり、それぞれが独自のcsprojファイルであり、それらのすべてが "\ Framework\bin\" ディレクトリ。
ソースコード全体を取得してプロジェクトのコンパイルを開始した後、問題に遭遇しました。多くの参照は解決できませんが、すべてではなく、異なるプロジェクトで常に同じ参照であるとは限りません。この問題は、 csprojファイルのHintPath属性に関連しているようです。
具体的には、解決できる参照の例を次に示します。
そして、これができないものです:
奇妙なことに、Visual Studio の 2 つの参照のプロパティはまったく同じです (もちろん、名前と ID を除いて)。HintPathは自動生成されているようですが、なぜ一部の参照だけなのでしょうか?
異なるバージョンの Visual Studio (500 以上のプロジェクトのうち、一部は VS2005、他は VS2008、その他はまだ VS2010) を使用すると問題が発生する可能性があると思われますが、動作を論理的なものに絞り込むことはできませんでした。
未解決の参照を手動で再アタッチせずにプロジェクトをコンパイルする方法はありますか?
c# - XDocument で csproj を読み取るときに、この XElement を取得するより良い方法は何ですか?
vs.netの外部のcsプロジェクトにファイルを追加しています(画像、cssなど、グループ外のファイルですが、公開する必要があります)。csproj をロードし、「Content」ノードを含む ItemGroup を照会しています。
このグループを取得するより良い方法はありますか?
ありがとうございました。
visual-studio - ac# プロジェクト ファイル (.csproj) の出力を確認するにはどうすればよいですか
何百ものプロジェクト (すべて c#) を含む非常に大規模な .NET ソリューションを使用しており、どのプロジェクトがスタートアップ プロジェクトとして設定するアプリケーション プロジェクトであるかをどのように判断できますか。
実行可能ファイルであることを示すキーワードについて、csproj ファイルを grep することを考えていました。
ありがとうございました
c# - プロジェクト参照条件付きインクルードと複数の条件
これが私のcsprojファイルからの抜粋です:
私がやりたいのは、リリースとデバッグの両方など、複数のビルド構成を含めることprogram_data.dll
です。
次のことをやってみました
しかし、VisualStudioはこれを窒息させます。
これを行う方法はありますか、それとも<ProjectReference>
ビルド構成ごとに個別にする必要がありますか?
powershell - csprojBeforeBuildステップにカスタムターゲットを追加するnuget用のカスタムPowerShellスクリプトを作成します
作成したカスタムMSBuildタスクを使用して、BeforeBuildステップをcsprojに追加するnugetパッケージを作成したいと思います。理想的には、次のことを行います。
- csprojファイル(MyCustomBeforeBuildTarget)に新しいターゲットを追加します
- BeforeBuildターゲットがまだ存在しない場合は、追加します
- BeforeBuild DependsOnTargets属性を編集して、カスタムターゲットを含めます
したがって、インストール後、csprojは次のようになります。
また、カスタムタスクDLLが存在しない場合にターゲットを無視するようにする条件を追加しましたが、パッケージを削除するとカスタムターゲットも表示されなくなると便利です。
カスタムターゲットを追加する、作成できる最も単純なPowershell nugetインストールスクリプトは何ですか?ここにあるPowerShellスクリプトがソリューションの一部を形成しているのではないかと感じていますが、実際にそれらを使用してcsprojを編集する方法を知るのに十分なPowerShellの経験がありません。
c# - .csproj ファイルは何をしますか?
通常、C# プロジェクトには .csproj ファイルが関連付けられています。そのファイルは何のためですか?どのようなデータが含まれていますか?
visual-studio - MonoTouchで既存の.NETライブラリを(実際に)再利用する方法
Visual Studio 2010で構築された既存の.NETアセンブリがあり、他のWinforms製品で使用されているとします。サードパーティの依存関係はありません。
そのライブラリをMonoTouchソリューションで直接再利用したいと思います。
現状では、MonoTouch UIプロジェクト内からライブラリへの参照を追加できるようにするには、新しいcsprojファイルを作成し、その中のすべてのソースファイルへのリンクを作成する必要があります。
これは機能しますが、メンテナンスの負担になります。より良い方法があるに違いありませんか?
前もって感謝します。
c# - PostBuildEvents の前に app.config 変換タスクを最初に実行するにはどうすればよいですか?
app.config で定義されているデータベース接続文字列を使用するコンソール アプリケーションがあります。ビルド構成に応じて文字列を変更するための変換がいくつかあります。
app.config を他のプロジェクトの出力にコピーするビルド後のイベントもいくつかあります。問題は、ビルド後のイベントが最初に発生し、変換されていない app.config をコピーすることです。後で変換タスクが開始され、変換が適用されます (そのため、機能することがわかります)。Visual Studio 2010 と .NET 4 で使用しています。
現在、アクションは [1]、[ 3 ]、[ 2 ] です。[1]、[2]、[3] に並べ替える必要があります。
1) ビルド
2) 変換の実行
3) ビルド後のイベントの実行
これが.csprojからの私の変換です
そして、これは私のビルド後のイベントです
どんな助けでも大歓迎です
c# - プロジェクト構成に基づいてcsprojOutputTypeを変更する
プロジェクトの構成に応じて、WinExeまたはライブラリとしてC#プロジェクトをビルドする必要があります。
私はこれらの方法の両方を運が悪かったので試しました:
1)一般的なPropertyGroupでは:
<OutputType Condition=" '$(Configuration)' == 'Release' ">WinExe</OutputType>
<OutputType Condition=" '$(Configuration)' == 'Debug' ">Library</OutputType>
2)条件付きPropertyGroupの場合:
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputType>WinExe</OutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputType>Library</OutputType>
</PropertyGroup>
これらのメソッドはどちらも機能せず、OutputTypeは常にWinExeです。奇妙なことに、WinExeのすべてのインスタンスをLibraryに変更すると、それは常にLibraryになります。これは、それらを正常に読み取っていると私に思わせますが、奇妙な順序であるか、WinExeがライブラリよりも優先されます。
何か案は?