5

公開するアプリケーションには、productNameとpublishNameの2つの名前があります(publishName / AssemblyNameは同じだと思います)。どちらも.csprojファイルで指定できます。

MSBuildのコマンドラインパラメーターを使用して.csprojファイルを変更せずに、これらの両方を設定したいと思います。これまで、msdnからこのページを使用して、製品名を変更する方法を理解しました。

MSBuild.exe /t:Build /p:ProductName=$productName. 

同様の方法でpublishNameを変更するにはどうすればよいですか?

私がpublishNameと言うとき、私は.application拡張子で作成されるファイルを意味します。誰もが私がこれに必要なプロパティを知っています-/p:*?

また、 Stack Overflowページをチェックアウトし、そこですべての提案を試しましたが、機能しませんでした。

4

3 に答える 3

8

これを解決するために、.csprojファイルに独自の変数を追加して、.exeの名前を制御しました(サブプロジェクトビルドの名前には影響しません)。

<!-- Make the assembly name configurable -->
<AssemblyName Condition=" '$(MSBuildAssemblyName)' == '' ">MyDefaultAssemblyName</AssemblyName>
<AssemblyName Condition=" '$(MSBuildAssemblyName)' != '' ">$(MSBuildAssemblyName)</AssemblyName>

コマンドラインでMSBuildAssemblyNameが指定されていない場合は、デフォルト名(MyDefaultAssemblyName)が使用されます。

コマンドラインで、次のように呼び出します。msbuild ... / p:MSBuildAssemblyName =MyOverriddenName..。

于 2018-02-06T09:59:48.737 に答える
3

引用符は含めないでください。

MSBuild.exe /t:Build /p:ProductName=$productName;AssemblyName=yourNameHere

また、同じソリューションに別のプロジェクトがある場合、これは機能しません-両方が同じアセンブリ名を取得します!

于 2015-12-03T06:38:32.433 に答える
0

次のことを試してください。

MSBuild.exe /t:Build /p:ProductName=$productName;AssemblyName="yourNameHere"

これは、MSBuildコマンドラインリファレンスから取得したものです。

于 2013-01-15T17:24:15.237 に答える