単体テストを行うときに使用したい単純なクラスがあります。NuGet パッケージを作成して、簡単に使用し、ソリューション間で更新を分散できるようにしたいと考えています。
そのアセンブリを作成する必要がありますか、それともソース ファイルのみを含む NuGet パッケージを作成し、それを他のすべてのものと一緒にコンパイルすることは可能ですか? もしそうなら、そのパッケージをどのように構成しますか?
単体テストを行うときに使用したい単純なクラスがあります。NuGet パッケージを作成して、簡単に使用し、ソリューション間で更新を分散できるようにしたいと考えています。
そのアセンブリを作成する必要がありますか、それともソース ファイルのみを含む NuGet パッケージを作成し、それを他のすべてのものと一緒にコンパイルすることは可能ですか? もしそうなら、そのパッケージをどのように構成しますか?
ソース コード ファイルだけでパッケージを作成する場合は、簡単です。詳細については、このブログ投稿を参照してください。
まず、コード ファイルを作成し、(たとえば) myFile.cs.pp として保存します (拡張子 pp (プリプロセッサ) に注意してください。名前空間などのために、ファイルに対していくつかの前処理を行うことができます。追加するには.MySubNameSpace の名前空間で、コード ファイルの宣言を次のように変更します
namespace $rootnamespace$.MySubNameSpace
Add this file to the content section of the nuget package. Build the package, and you're all set.
.nupec パッケージ ファイルは次のようになります。
<?xml version="1.0" encoding="utf-16"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MyPackageName</id>
<version>1.0.0</version>
<title>My Package Name</title>
<authors>Your Name</authors>
<owners />
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>My package description.</description>
</metadata>
<files>
<file src="content\myCodeFile.cs.pp" target="content\myCodeFile.cs.pp" />
</files>
</package>
これらはすべてNuGet パッケージ エクスプローラーを使用して行うことができます。
編集:他の回答が言ったように、NuGetを使用すると、単純なソース コードを配布できます。ただし、アセンブリを提供するだけのより主流なアプローチを取ることを強くお勧めします。NuGet を使用すると、これを非常に迅速に行うことができます。この 1 つのソース ファイルに対して別のプロジェクトを作成し、そのアセンブリのパッケージを作成するという「苦痛」を経験する必要がありますが、それはすべて非常に簡単です。
これには、(ほぼ必然的に)より多くのタイプを追加したい場合に、それに依存するプロジェクトに問題が発生しないという追加の利点があります。
ここで参照されているコンテンツフォルダを使用するだけです。Nuspecリファレンス(「コンテンツファイル」セクションを探してください)
<file src="css\mobile\*.css" target="content\css\mobile" />