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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
反転スコープ
記事: 15
登録日時: 6年前
住所: 岐阜

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

#1

投稿記事 by 反転スコープ » 6年前

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

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

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

Math

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

#2

投稿記事 by Math » 6年前

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

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

反転スコープ
記事: 15
登録日時: 6年前
住所: 岐阜

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

#3

投稿記事 by 反転スコープ » 6年前

Math さんが書きました:既存の項目の追加を使ってできませんか?
プロジェクトフォルダ内にソースファイルがありません。
そもそもテンプレート.zipにソースファイル本体が記録されていないかもしれません。
Math さんが書きました:(私はそんな面倒なことをせずソリューションのフォルダーごと別の場所にコピーしてますね)
テンプレートを使ったほうが手早くできそうかなぁ、、、と思ったり、
テンプレートの使い方を調べるのにかなり時間をかけちゃっているので最後まで解決させたいってのもあります。

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

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

#4

投稿記事 by ISLe » 6年前

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

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


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

Math

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

#5

投稿記事 by Math » 6年前

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

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

反転スコープ
記事: 15
登録日時: 6年前
住所: 岐阜

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

#6

投稿記事 by 反転スコープ » 6年前

ISLe さんが書きました: 1. プロジェクトテンプレートのzipファイルに、ソースファイルを追加
2. プロジェクトテンプレートのzipファイルに含まれるMyTemplate.vstemplateに
<ProjectItem>ソースファイルの名前</ProjectItem>
を追記(1ファイルにつき1つずつ)
確認しました! 求めていた動作はまさしくコレです!
(どうして自動でやってくれないんだmicrosoftよ・・・。無償版ユーザへの嫌がらせと邪推してしまうぞ・・・。)
どこにも載ってない情報だと思うのでこういうのを自分で見つけれる人は尊敬しちゃいます。
この先もこのやり方を活用させていただくと思います。

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

ISLe
記事: 2650
登録日時: 13年前
連絡を取る:

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

#7

投稿記事 by ISLe » 6年前

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

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


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

反転スコープ
記事: 15
登録日時: 6年前
住所: 岐阜

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

#8

投稿記事 by 反転スコープ » 6年前

ご調査ありがとうございました。
ISLe さんが書きました: 『ソースファイル』等のサブフォルダ(フィルター)の下だとエクスポートされません。
結構不便ですね。というかみんな困ってないのでしょうか?言わないだけ?
でもテンプレートって頻繁に作るもんじゃないし
以前のISLeさんのポチポチ手打ちのやり方を知っていれば、もう問題ないですね。
ISLe さんが書きました: 過去にはC/C++のプロジェクトで『テンプレートのエクスポート』機能はサポートされていなかったらしいです。
VB.NETやC#のプロジェクトテンプレートはフィルターを作らない(作れない?)ので、その名残でしょうかね。
そういえば昔はエクスポート機能が無かったからプロパティシートというので代用していたのを思い出しました。
プロパティシートもなかなかに「非」ユーザフレンドリーな部分があってイライラさせられた記憶があります。
(VisualStudioだけで毛根100本はもってかれてそう。)

反転スコープ
記事: 15
登録日時: 6年前
住所: 岐阜

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

#9

投稿記事 by 反転スコープ » 6年前

追記です。
プロジェクトテンプレートと項目テンプレートはVisualStudioを再起動しないと読み込まれないようです。
当たり前のことかもしれませんがちょっと悩んじゃったので一応書いときます。
オフトピック
本当はテンプレートファイル配布するまでやりたいんですけど、
ほら?初心者が配布とかすると個人情報抜き取られたり怖いじゃん?

返信

“C言語何でも質問掲示板” へ戻る