合計 昨日 今日

VisualStudioテンプレートにソースファイルが含まれない

[このトピックは解決済みです]

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: 反転スコープ
[URL]
ぴよぴよ(447 ポイント)
Date: 2017年10月19日(木) 23:35
No: 1
(OFFLINE)

 VisualStudioテンプレートにソースファイルが含まれない

プロジェクトを作るたびに強いられるDXライブラリの設定が面倒くさかったので
VisualStudio2015のプロジェクトテンプレートという機能を使って雛形を作成しました。
このときプロパティの設定をした後、ソースファイルにHelloWorldを記述してテンプレートを作成しています。

新しいプロジェクトを作る際にテンプレートを使用したところ、
パスの設定やディレクトリ構造が反映されるのは確認できたのですが
ソースやヘッダを開くことが出来ません(ソリューションエクスプローラにファイル名が
表示されますが肝心のファイル本体がプロジェクトのディレクトリ内に存在しません)。

テンプレートにソースやヘッダを内包する方法が分かる方がいらっしゃったら、ご教授いただけると幸いです。

Name: Math
[URL]
Date: 2017年10月20日(金) 09:25
No: 2
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

https://msdn.microsoft.com/ja-jp/library/xkh1wxd8.aspx
https://msdn.microsoft.com/ja-jp/library/tsyyf0yh.aspx
既存の項目の追加を使ってできませんか?

(私はそんな面倒なことをせずソリューションのフォルダーごと別の場所にコピーしてますね)

Name: 反転スコープ
[URL]
ぴよぴよ(447 ポイント)
Date: 2017年10月21日(土) 08:55
No: 3
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

Math さんが書きました:既存の項目の追加を使ってできませんか?

プロジェクトフォルダ内にソースファイルがありません。
そもそもテンプレート.zipにソースファイル本体が記録されていないかもしれません。
Math さんが書きました:(私はそんな面倒なことをせずソリューションのフォルダーごと別の場所にコピーしてますね)

テンプレートを使ったほうが手早くできそうかなぁ、、、と思ったり、
テンプレートの使い方を調べるのにかなり時間をかけちゃっているので最後まで解決させたいってのもあります。

Name: ISLe
[URL]
ハッカー(265,130 ポイント)
Date: 2017年10月21日(土) 17:45
No: 4
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

1. プロジェクトテンプレートのzipファイルに、ソースファイルを追加
2. プロジェクトテンプレートのzipファイルに含まれるMyTemplate.vstemplateに
<ProjectItem>ソースファイルの名前</ProjectItem>
を追記(1ファイルにつき1つずつ)
上記手順で希望のことができました。

VS2017Communityでも同様にソースファイルが含まれませんでした。


プロジェクトごとファイルをコピーするとプロジェクトファイル(.vcxproj)に記録されている識別ID(GUID)が複数のプロジェクトで同一となるため、コマンドラインからコンパイルするという使い方だけをしていれば問題ないでしょうが、プロジェクト/ソースファイル管理ツールなどを利用した際にはソースファイルの喪失のような不都合が発生する可能性があります。

Name: Math
[URL]
Date: 2017年10月21日(土) 21:37
No: 5
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

>プロジェクトごとファイルをコピーするとプロジェクトファイル(.vcxproj)に記録されている識別ID(GUID)が複数のプロジェクトで同一となるため、コマンドラインからコンパイルするという使い方だけをしていれば問題ないでしょうが、プロジェクト/ソースファイル管理ツールなどを利用した際にはソースファイルの喪失のような不都合が発生する可能性があります。

そうですね。テスト以外で本格的にプログラムをする場合はツールを使ってプロジェクトファイル(.vcxproj)のGUIDをユニークなものに置換する必要があります。https://ja.wikipedia.org/wiki/GUID

Name: 反転スコープ
[URL]
ぴよぴよ(447 ポイント)
Date: 2017年10月21日(土) 23:48
No: 6
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

[解決!]

ISLe さんが書きました:1. プロジェクトテンプレートのzipファイルに、ソースファイルを追加
2. プロジェクトテンプレートのzipファイルに含まれるMyTemplate.vstemplateに
<ProjectItem>ソースファイルの名前</ProjectItem>
を追記(1ファイルにつき1つずつ)

確認しました! 求めていた動作はまさしくコレです!
(どうして自動でやってくれないんだmicrosoftよ・・・。無償版ユーザへの嫌がらせと邪推してしまうぞ・・・。)
どこにも載ってない情報だと思うのでこういうのを自分で見つけれる人は尊敬しちゃいます。
この先もこのやり方を活用させていただくと思います。

返信いただいたISLeさん、Mathさん、ありがとうございました!

Name: ISLe
[URL]
ハッカー(265,130 ポイント)
Date: 2017年10月22日(日) 15:48
No: 7
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

無償版とは言えわざわざ中途半端な機能制限をする合理的な理由が見付からないので調べてみました。

結果、ソリューションエクスプローラーでプロジェクト直下に表示されるファイルは同時にエクスポートされました。
『ソースファイル』等のサブフォルダ(フィルター)の下だとエクスポートされません。


過去にはC/C++のプロジェクトで『テンプレートのエクスポート』機能はサポートされていなかったらしいです。
VB.NETやC#のプロジェクトテンプレートはフィルターを作らない(作れない?)ので、その名残でしょうかね。

Name: 反転スコープ
[URL]
ぴよぴよ(447 ポイント)
Date: 2017年10月24日(火) 09:42
No: 8
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

ご調査ありがとうございました。

ISLe さんが書きました:『ソースファイル』等のサブフォルダ(フィルター)の下だとエクスポートされません。

結構不便ですね。というかみんな困ってないのでしょうか?言わないだけ?
でもテンプレートって頻繁に作るもんじゃないし
以前のISLeさんのポチポチ手打ちのやり方を知っていれば、もう問題ないですね。

ISLe さんが書きました:過去にはC/C++のプロジェクトで『テンプレートのエクスポート』機能はサポートされていなかったらしいです。
VB.NETやC#のプロジェクトテンプレートはフィルターを作らない(作れない?)ので、その名残でしょうかね。

そういえば昔はエクスポート機能が無かったからプロパティシートというので代用していたのを思い出しました。
プロパティシートもなかなかに「非」ユーザフレンドリーな部分があってイライラさせられた記憶があります。
(VisualStudioだけで毛根100本はもってかれてそう。)

Name: 反転スコープ
[URL]
ぴよぴよ(447 ポイント)
Date: 2017年10月24日(火) 18:25
No: 9
(OFFLINE)

 Re: VisualStudioテンプレートにソースファイルが含まれない

追記です。
プロジェクトテンプレートと項目テンプレートはVisualStudioを再起動しないと読み込まれないようです。
当たり前のことかもしれませんがちょっと悩んじゃったので一応書いときます。

Offtopic :
本当はテンプレートファイル配布するまでやりたいんですけど、
ほら?初心者が配布とかすると個人情報抜き取られたり怖いじゃん?


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[12人]