9

ユーザーが指定したXMLファイルを読み取り、その上でXSLT変換を実行し、結果を出力する単純なC#コンソールアプリがあります。

アプリをユーザーに配布するときに、単一の.EXEファイルを配布したいと思います。私のソースコードは、.csprojファイル、.csコードファイル、および.xsltスタイルシートの3つのファイルで構成されています。

.xsltが出力内に「埋め込まれ」、エンドユーザーが表示または変更できないようにcsprojを設定するにはどうすればよいですか?

簡単そうに見えますが、私には理解できず、Googleはあまり役に立ちません。

4

2 に答える 2

31

ファイルをプロジェクトに追加し、ファイルを選択して[プロパティ]ウィンドウに移動します(を押しますF4)。ビルドアクションを「埋め込みリソース」に設定します。これにより、ファイルがリソースとしてexeファイルに埋め込まれます。

using(Stream strm = Assembly.GetExecutingAssembly().GetManifestResourceStream("YourAssemblyName.filename.xslt"))
using (XmlReader reader = XmlReader.Create(strm))
{
    XslTransform transform = new XslTransform();
    transform.Load(reader);
    // use the XslTransform object
}
于 2009-11-17T13:54:21.337 に答える
15

アセンブリに埋め込むことができます。

ソリューションにファイルを追加し、ビルドアクションを埋め込みリソースに設定します。

ファイルを読み取る必要がある場所は、http://msdn.microsoft.com/en-us/library/xc4235zt.aspx Assembly.GetManifestResourceStreamを使用して、ファイルに書き込んだり直接使用したりできるストリームを提供します。

リソースの名前がよくわからない場合は、Assembly.GetManifestResourceNamesすべてのリソースを一覧表示すると便利です。

于 2009-11-17T13:55:25.733 に答える